package org.example.richtersubstitution;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

/**
 * @author
 * @description 里氏替换原则
 */
@SpringBootTest
public class RichterSubstitution {

    @Test
    void runTest()
    {
        A a = new A();
        System.out.println("11-3="+ a.func1(11, 3));
        System.out.println("1-8=" + a.func1(1, 8));
        System.out.println("---------------------------------------");
        B b = new B();
        System.out.println("11+3="+ b.func1(11, 3));
        System.out.println("1+8=" + b.func1(1, 8));
        System.out.println("11+3+9="+ b.func2(11, 3));

        A a1 =new B();
        System.out.println("11+3="+ a1.func1(11, 3));
        System.out.println("1+8=" + a1.func1(1, 8));

    }

}



class  A  {
    public int func1(int num1, int num2)
    {
        return num1 - num2;
    }
}

class B extends A {
    public int func1(int a, int b)
    {
        return a + b;
    }

    public int func2(int a, int b)
    {
        return func1(a, b)+9;
    }
}